/**
   CS 305 & 503, Data Structures and Algorithms
   Programming Assignment 4, Fall 2010

   An interface for a method that accepts a sorter and determines the kind of
   arrays it sorts most quickly.
 */


interface SortClassifier {

  /**
     
     @param sorter A sort.

     @return The kind of array on which the given sorter works the fastest.
  */

  Advantage analyze(Sorter sorter);



  /**
     Characterizes the kind of sequence over which a sort works best.
   */

  enum Advantage {

    /**
       Sorted arrays are sorted more quickly than are unsorted arrays.
     */

    sorted,

    /**
       No difference in performance between sorted and unsorted arrays.
     */

    uniform,

    /**
       Unorted arrays are sorted more quickly than are sorted arrays.
     */

    unsorted
    }
  }


// $Log: SortClassifier.java,v $
// Revision 1.2  2010/12/09 01:41:45  rclayton
// Remove all generics.
//
// Revision 1.1  2010/12/02 22:52:38  rclayton
// Initial revision
//
